//
// Created by me1on on 22-5-17.
//

#ifndef SOLARENERGY_CHIER_REFINEDRECTANGLERECEIVERRECTANGLEGRIDRAYTRACING_CUH
#define SOLARENERGY_CHIER_REFINEDRECTANGLERECEIVERRECTANGLEGRIDRAYTRACING_CUH

#include <vector_types.h>

namespace solar
{
    class CloudLoader;
    namespace cuda
    {
        struct SunrayArgument;
        class CudaRefinedRectangleReceiver;
        class CudaRectangleGrid;
        struct HeliostatArgument;
    } // namespace cuda
} // namespace solar

namespace solar::cuda
{
    void RefinedRectangleReceiverRectangleGridRayTracing(
        SunrayArgument* sunrayArgument, CudaRefinedRectangleReceiver* refinedRectangleReceiver,
        CudaRectangleGrid* rectGrid, HeliostatArgument* heliostatArgument,
        float3* d_subHeliostat_vertexes, float factor, bool res, CloudLoader* cloud);
}

#endif // SOLARENERGY_CHIER_REFINEDRECTANGLERECEIVERRECTANGLEGRIDRAYTRACING_CUH
